package so.sao.code.service.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;

import so.sao.code.dto.request.TagScrapRequest;
import so.sao.code.service.domain.entity.TagScrap;
import so.sao.code.service.infrastructure.enums.TAG_SCRAP_TYPE;
import so.sao.code.service.infrastructure.model.vo.PackageCodeInfoVO;
import so.sao.code.service.infrastructure.model.vo.SingleCodeInfoVO;

public interface TagScrapService {

	void handle(TagScrapRequest tagScrapRequest)  throws Exception;

	Page<TagScrap> getTagScrapList(Specification<TagScrap> spec,  Pageable pageable);

	PackageCodeInfoVO findPackageCodeInfo(String packageUrlOrSerialNumber) throws Exception ;

	SingleCodeInfoVO findSingleCodeInfo(String codeUrlOrEncryptionStr) throws Exception ;
             
	Boolean getTagScrapResult(Long seqNum);
	
	List<TagScrap> findTagScrapInfoByScrapType(TAG_SCRAP_TYPE type);
}
